iT邦幫忙

2022 iThome 鐵人賽

DAY 11
0
AI & Data

親手打造推薦系統系列 第 11

Day 11 矩陣分解演算法介紹 - 親手打造推薦系統

  • 分享至 

  • xImage
  •  

在前兩天的介紹裡,我們說明了協同過濾法的作法,這種做法雖然直覺簡單,但無論是 UserCF 或 ItemCF 它[ 都要維護一個很大的評分表,並且這個評分表是個稀疏矩陣。

要在這麼大的矩陣做相似性的計算,最後預測評分,這在效能和記憶體都是一大考驗,要怎麼改善這一點呢?

我們可以這樣想:無論它是一個多大的矩陣,它都可以拆成 2 個矩陣相乘。

假設R為評分表矩陣,且我們可以找到U矩陣及I矩陣人使得 R = U x I
那麼要是 R 為 m x n 維,那 U 為 m x k 維,I 為 k x n 維。這時若我們要R 的內容,我們根本不需要R,我們只需要拿U的部份資料和 I 的部份資料做計算,就可以拿到了。這樣馬上可以省下不少空間。

剩下來的問題就是 U 和 I 要怎麼找到。我們要找矩陣的分解,通常有 3 種找法:

  1. 特徵值分解
  2. 奇異值分解
  3. 梯度下降法

這3種的適用性,分別討論如下:

  1. 因為特徵值分解,只能用於方陣,所以不合適用在這個地方 。
  2. 若用奇異值分解,又由於 R這個評分表是一個又大又非常稀疏的矩陣,因此奇異值分解計算量非常大,這在推薦系統裡又不適用。
  3. 做矩陣分法法時,都會以梯下降法為主。用此法找到 U’ 和 I’,使得 U’ X I’ 為最接近 R 。

上一篇
Day 10 - ItemCF 和 UserCF 各適合用在哪裡?協作過濾法(CF)的優、缺點有哪些?還有與基於內容的推薦有哪些不同? - 親手打造推薦系統
下一篇
Day12 - 是什麼推薦系統的冷啟動問題?有哪些對策可以處理?冷啟動問題(1) - 親手打造推薦系統
系列文
親手打造推薦系統30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言